package me.acomma.groot.infrastructure.dao;

import me.acomma.groot.domain.menu.Menu;
import me.acomma.groot.domain.menu.MenuId;
import me.acomma.groot.domain.role.RoleId;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
@Component
public interface MenuDao {
    List<Menu> selectAll();

    int insert(Menu menu);

    int delete(@Param("menuId") MenuId menuId);

    int update(Menu menu);

    Menu select(@Param("menuId") MenuId menuId);

    long countByParentId(@Param("parentId") MenuId parentId);

    List<Menu> selectByRoleId(@Param("roleId") RoleId roleId);
}
